import os
import shutil

path = "D:\Downloads"
file = os.listdir(path)  # 列出当前文件夹的所有文件

# 循环遍历每个文件
for f in file:
    #拼接为绝对路径
    filepath = os.path.join(path,f)
    #print(os.path.join(path,f))
    #判断是否为文件
    if os.path.isfile(filepath):

        # 以扩展名为名称的子文件夹
        folder_name =os.path.join(path,f.split(".")[-1])
        #print(folder_name)
        # 如果不存在该目录，先创建，再移动文件
        if not os.path.exists(folder_name):
            os.makedirs(folder_name)
            # 举例：这里的f为 1.png 等同于 ./1.png (因为是相对路径)
            shutil.move(filepath, folder_name)
        # 直接移动文件
        else:
            shutil.move(filepath, folder_name)
    else:
        continue